Computers are utilized pervasively in today's society to perform a wide variety of tasks and for entertainment purposes. For instance, computers today are utilized for gaming, communications, research, and a virtually endless variety of other applications. One of the most common uses of computers, by both businesses and individuals alike, is the creation of electronic and printed documents. Computer application programs exist for creating all kinds of electronic documents, including spreadsheets, presentations, word processing documents, graphical documents such as diagrams and digital images, computer-aided design documents, and many other types of electronic documents.
Electronic documents often include content that is very important. Moreover, the content of an electronic document in many cases would be difficult or impossible to recreate if lost. For instance, highly complicated legal, business, marketing, and technical documents are often created that could not easily be recreated if the data file storing the document were corrupted or destroyed. Even in cases where the contents of a document could be easily be recreated, it can be very frustrating for a user to lose even a small portion of their data. Accordingly, it is very important that the data contained in electronic documents be protected against destruction and corruption.
Modern computer systems include error checking and other mechanisms to protect against the inadvertent corruption or loss of system memory. Unfortunately, even with these mechanisms in place, it is possible for a document stored in volatile system memory to become corrupted prior to saving the document to a data file on a mass storage device. Corruption may occur as the result of faulty memory, a faulty memory controller, memory management errors, loading faulty or corrupt data, a crash of the application program, and for other reasons. Because the loss of any amount of data can be frustrating to a user and because the time and effort necessary to recreate a corrupted document is often very great, it is important that as much data as possible be recovered from a corrupted document stored in volatile memory prior to saving the contents of the memory to a mass storage device.
It is with respect to these considerations and others that the various embodiments of the present invention have been made.